Skip to content

Canonical CI: grouped-tests.yml + root test/test_groups.toml - #107

Merged
ChrisRackauckas merged 4 commits into
SciML:mainfrom
ChrisRackauckas-Claude:grouped-tests-ci
Jun 15, 2026
Merged

Canonical CI: grouped-tests.yml + root test/test_groups.toml#107
ChrisRackauckas merged 4 commits into
SciML:mainfrom
ChrisRackauckas-Claude:grouped-tests-ci

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

Converts the root test workflow to the canonical thin caller of SciML/.github/.github/workflows/grouped-tests.yml@v1, with the group × version matrix declared once in test/test_groups.toml.

Changes

  • .github/workflows/CI.yml (converted in place — filename and name: CI preserved): the hand-maintained version/os/arch matrix job (which called tests.yml@v1 directly) is replaced by a thin caller of grouped-tests.yml@v1. on: and concurrency: are preserved verbatim. The only non-default with: is coverage: false, carried over from the old workflow.
  • test/test_groups.toml (new, repo root): [Core] versions = ["lts","1","pre"]; [QA] versions = ["lts","1"]. Linux-only — no os axis.
  • test/runtests.jl: adds GROUP dispatch (default "All"). The existing suite (DCP, DGCP SPD/Lorentz, Interface, Allocation) runs under All/Core; the QA group runs test/qa/qa.jl.
  • test/qa/ (new): isolated QA environment (Aqua, JET, Test, and SymbolicAnalysis via [sources] path ../..) plus qa.jl running Aqua.test_all(SymbolicAnalysis) and JET.test_package(SymbolicAnalysis; target_defined_modules=true).

Other workflows (Downgrade, Documenter, FormatCheck, RunicSuggestions, SpellCheck, TagBot, DependabotAutoMerge, DocPreviewCleanup) are left untouched.

Matrix match

The matrix computed by compute_affected_sublibraries.jl . --root-matrix is:

group versions runner
Core lts, 1, pre ubuntu-latest
QA lts, 1 ubuntu-latest

The old matrix was a single cell: version "1", ubuntu-latest, x64, coverage:false. The new matrix reproduces that exact cell (Core @ 1, ubuntu-latest) and canonically expands it with the standard lts/pre versions plus the newly-wired QA group. All cells are ubuntu-latest, matching the old single-OS (Linux) matrix.

Project metadata

Root Project.toml already has [compat] julia = "1.10" (LTS floor) and has no [extras] section, so no pre-emptive metadata fixes were required.

Notes

  • QA group is newly wired; Aqua/JET run in CI for the first time — any failures will be triaged in a follow-up. No exclusions were pre-added to qa.jl.

Please ignore until reviewed by @ChrisRackauckas.

ChrisRackauckas and others added 4 commits June 9, 2026 18:18
Convert the root test workflow (CI.yml) to the canonical thin caller of
SciML/.github/.github/workflows/grouped-tests.yml@v1, with the group x version
matrix declared once in test/test_groups.toml.

- CI.yml: replace the hand-maintained version/os/arch matrix job (which called
  tests.yml@v1 directly) with a thin caller of grouped-tests.yml@v1. on: and
  concurrency: preserved verbatim; coverage:false carried over (non-default).
- test/test_groups.toml: [Core] versions=["lts","1","pre"]; [QA]
  versions=["lts","1"]. Linux-only (no os axis).
- test/runtests.jl: add GROUP dispatch (default "All"). Existing suite runs
  under All/Core; QA group runs test/qa/qa.jl.
- test/qa/: isolated QA env (Aqua, JET, Test, SymbolicAnalysis via [sources]
  path) + qa.jl running Aqua.test_all + JET.test_package(target_defined_modules).

QA group is newly wired; Aqua/JET run in CI for the first time. No exclusions
were pre-added; any genuine findings will be triaged in a follow-up.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The QA group includes test/qa/qa.jl directly in the root test
environment (no Pkg.activate of test/qa), so its using Aqua, JET
statements must resolve in the root test env. Add Aqua and JET to
the root test environment so the QA group can load them.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The grouped-tests conversion placed `using SymbolicAnalysis: ...` inside the
top-level `if GROUP == "All" || GROUP == "Core"` block, which also uses
`@testset` inline. Julia macro-expands the whole `if` block as one unit before
the in-block `using` runs, so test macros are undefined in Main. Move the
functional `using` to top level (after `using SafeTestsets, Test`).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts conversion)

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Added the SciMLTesting v1.2 folder-based run_tests harness on top of this grouped-tests conversion; merges as one PR (grouped-tests + SciMLTesting v1.2).

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 15, 2026 04:57
@ChrisRackauckas
ChrisRackauckas merged commit 73e605e into SciML:main Jun 15, 2026
4 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants